package com.ruoyi.common.utils.bean;

import com.baomidou.mybatisplus.annotation.IEnum;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Arrays;

/**
 * @Classname EnumUtils
 * @Author: sunluquan
 * @Date: 2022/4/12 15:56
 * @Description TODO
 */
public class EnumUtils {

    /**
     * 枚举转换方法
     * @param eClass
     * @param t
     * @param <E>
     * @param <T>
     * @return
     */
    public static <E extends IEnum,T extends Serializable> E toEnum(@NotNull Class<E> eClass,@NotNull T t){

        IEnum[] iEnums = eClass.getEnumConstants();

        return (E) Arrays.stream(iEnums).filter(e->e.getValue().equals(t)).findFirst().get();
    }

    /**
     * 判断枚举接口的 getValue 值 和 t2值是否相等
     * @param t1
     * @param t2
     * @param <T>
     * @return
     */
    public static <T extends Serializable> boolean equals(@NotNull IEnum<T> t1,@NotNull T t2){
        return t1.getValue().equals(t2);
    }
}
